1. Field of the Invention
The present invention relates generally to software objects, and in particular, to a method, apparatus, and article of manufacture for providing a framework for objects with authorable behaviors and appearances for computer programs.
2. Description of the Related Art
The use of Computer Assisted Drafting (CAD) application programs is well known in the art. Some CAD programs provide templates and palettes that help users create documents, graphical presentations, etc. However, these templates and palettes provide only limited assistance and do little to help the user connect standard CAD components, define new components, or define methods of manipulating the components within the CAD program.
Most standard components are predefined by the CAD program itself, leaving little room for the user to define custom shapes without using the predefined standard components as building blocks. A user must manipulate standard components to define a shape or outline, place them spatially proximate on a working screen, and then group them together using a grouping or wrapping function. This multiple step approach of dragging components onto the screen and then modifying the components to create a new shape or outline within a document is inefficient and time consuming.
Further, once a custom or semi-custom component is created, the custom or semi-custom component cannot use variables defined with expressions, and cannot be used with other shapes or components automatically. Moreover, the isolated creation of components that are not able to be shared between components and users, as well as the inability of present CAD programs to use expressions to define the component, limits the capabilities of current CAD programs. The creation of components with current CAD programs is also not easily learned by a user. Further, these limitations prevent many users from utilizing the CAD program to its fullest extent.
Consequently, there is a need in the art for improved techniques for creating components in a CAD program, in order to create documents faster. Further, there is a need in the art for improved techniques for direct manipulation of software objects.